/**
 * 日期格式化工具函数
 * 提供时间戳转换和格式化功能
 */

/**
 * 时间转换函数 - 根据天数自动转换为最合适的时间单位
 * 转换规则：
 * - 小于30天：直接显示天数（如：12天）
 * - 30天及以上但不足365天：转换为月数（如：30天→1个月，61天→2个月）
 * - 365天及以上：转换为年数（如：365天→1年，730天→2年）
 * @param {number} days - 天数
 * @returns {string} 转换后的时间字符串
 */
export const formatTimeUnit = (days) => {
  if (days < 30) {
    return `${days}天`;
  } else if (days < 365) {
    const months = Math.floor(days / 30);
    return `${months}个月`;
  } else {
    const years = Math.floor(days / 365);
    return `${years}年`;
  }
};

/**
 * 更新时间计算函数 - 根据时间戳计算更新时间差
 * @param {number|string} updateTime - 更新时间戳
 * @returns {string} 格式化后的时间差字符串
 */
export const onUpdateDate = (updateTime) => { 
  // 计算时间戳之间的天数差
  const currentTime = new Date().getTime();
  const updateTimestamp = new Date(updateTime).getTime();
  const timeDiff = currentTime - updateTimestamp;
  
  // 将毫秒转换为天数（向下取整）
  const daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
  
  return formatTimeUnit(daysDiff);
};

/**
 * 获取当前日期（当月第几天）
 * @returns {number} 当前日期（1-31）
 */
export const getCurrentDate = () => {
  return new Date().getDate();
};

/**
 * 默认导出对象
 */
export default {
  formatTimeUnit,
  onUpdateDate,
  getCurrentDate
};